home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MIDICraft's MIDINET CD-ROM
/
MIDICraft's MIDINET CD-ROM.iso
/
DOSUTILS
/
MIDISTAT.ZIP
/
MIDISTAT.DOC
< prev
next >
Wrap
Text File
|
1996-03-16
|
6KB
|
202 lines
******************************
MIDISTAT v1.0
statistics of midi binaries
by Guenter Nagler
1996
(gnagler@ihm.tu-graz.ac.at)
******************************
[0] FEATURES
+ reads a binary midi file
+ writes statistic text to standard output
+ number of tracks
+ used channels per tracks
+ used programs per track (except gm drum channel 10, gm program names)
+ used notes per track (note names)
+ used velocities per track (note on)
+ used volume values per track
[1] BACKGROUND
When I wrote the utility MIDIDRUM that splits tracks by instruments
I needed the proof that each track really contains only one instrument (program)
or drum instrument (note).
This can hardly be done with manual checking of midi files, so I wrote
this simply program that gives me the statistics per track.
Sometimes I use this utility when I want to change volume or velocity of
a midi track. The utility MIDIFADE needs percentage values of original
velocities and so I check first which original volume or velocity values
were used and decide percentage value according to minimum or maximum value,
so that the changed values will not exceed the limits.
[2] FILES DESCRIPTION
MIDISTAT.EXE.........converter program
MIDISTAT.DOC.........this file, showing usage of MIDISTAT.EXE
MIDIIO.HPP..........header file for a c++ midi parser
MIDIIO.CPP..........source code for a c++ midi parser
MIDISTAT.CPP.........c++ source code for modifying midi files
MIDISTAT.MAK.........make file for project
MIDISTAT.CFG.........compiler options for make
MIDISTAT.PRJ.........compiler project for Borland (tm) c++ compilers
only MIDISTAT.EXE is required to run program
[3] COPYRIGHT
MIDISTAT (c) 1996 was created by Guenter Nagler.
MIDISTAT is free and may be used as you wish with this one exception:
You may NOT charge any fee or derive any profit for distribution
of MIDISTAT. Thus, you may NOT sell or bundle MIDISTAT with any
product in a retail environment (shareware disk distribution, CD-ROM,
etc.) without permission of the author.
You may give MIDISTAT to your friends, upload it to a BBS, or ftp it to
another internet site, as long as you don't charge anything for it.
[4] DISCLAIMER
MIDISTAT was designed to handle 100% compatible general midi files.
The parser was tested with 2000 different midi files but I can not say if
each 100% midi compatible midi file can be correctly converted.
So I give no guarantees of the results, especially with non 100%
compatible midi files.
If you find a midi file that you think to be 100% compatible midi
that is not correctly converted, please send a sample file to
gnagler@ihm.tu-graz.ac.at .
Use MIDISTAT at your own risk. Anything you do with MIDISTAT is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running MIDISTAT
is your responsibility, and the author will not be liable.
If you don't understand these terms, or are not sure of something, or
are afraid something bad might come of using MIDISTAT, don't use it!
You are here forewarned.
[5] INSTALLATION
[MSDOS]
Simply copy MIDISTAT.EXE in a directory that is in your path.
When you start the program without arguments
[UNIX]
compile sources with your C++ compiler (e.g. GNU Compiler g++):
g++ -o midistat midistat.cpp midiio.cpp
and run program
$ midistat
C:\> midistat
you should get the usage text (see next section)
[6] USAGE
usage: midistat filename.mid [ > output]
The parts in brackets [...] are optional.
"> output" means that you can redirect the output of midistat to
a file or printer. By default the output is written on your terminal.
The program MIDISTAT has following hidden option:
-version get program version
[8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
WWW: http://hgiicm.tu-graz.ac.at/Cpub
contains all my dos/unix midi programs
EMAIL: gnagler@ihm.tu-graz.ac.at
[9] EXAMPLE
example: statistics of a midi file format 0 file
command>midistat format0.mid
format0.mid: 1 Track
Track 1:
Channels: 1-5 9 10 12-16
Notes: c1 f1 g1-a1 c2 d2 e2-a#2 c3-d3 e3-g3 a3 h3 c4 d4 e4 f4 g4 a4-c5 d5-f5 g5-d6
Programs: CleanGtr FretLess SlowString Choir Trumpet FrenchHorn Clarinet PanFlute Shakuhachi SynCalinope Fantasia
Velocity: 26 36 37 39-49 51-53 55-58 60 62-64 66-69 72 73 76-78 81-83 85 86 88 89 92 94 96 98 103 109 111-113 115 123
Volume: 0 127
Channels 1-5 means that all channels within range 1 and 5 are used (1,2,3,4,5)
example: statistics of a midi file format 1 file
command>midistat format1.mid
format1.mid: 13 Tracks
Track 1:
Track 2:
Channels: 1
Programs: PanFlute
Volume: 127
Track 3:
Channels: 2
Notes: c1 f1 g1-a1 c2 d2 e2 g2 a2
Programs: FretLess
Velocity: 96
Volume: 127
Track 4:
Channels: 3
Notes: d3 e3 f3 g3 a3 c4 d4 e4 g4
Programs: CleanGtr
Velocity: 53 63
Volume: 0 127
Track 5:
Channels: 4
Programs: Trumpet
Volume: 127
Track 6:
Channels: 5
Notes: d4 e4 a4 h4 c5
Programs: Shakuhachi
Velocity: 66 78 113
Volume: 0 127
Track 7:
Channels: 9
Notes: e4 f4 g4 a4 h4 c5 d5 e5 f5 g5 a5 h5 c6 d6
Programs: SynCalinope
Velocity: 67 77
Volume: 127
Track 8:
Channels: 10
Notes: c2 d2 f2-a#2 c#3 f#3 a3 h3 a4 a#4 d#5 g#5-a#5 c#6
Velocity: 26 36 37 39-49 51-53 55 56 58 60 64 66 68 69 72 76 81 85 86 89 94 96 98 103 109 111 115 123
Volume: 127
Track 9:
Channels: 12
Notes: c3 h3 c4 d4 e4 f4 g4 a4 c5 d5 e5 f5 g5
Programs: SlowString
Velocity: 52 62 72 82 85 92
Volume: 127
Track 10:
Channels: 13
Notes: h4 c5 d5-e5 g5 c6
Programs: Fantasia
Velocity: 58 63 68 73
Volume: 127
Track 11:
Channels: 14
Notes: d3 e3 g3 a3 h3 c4 d4 e4
Programs: FrenchHorn
Velocity: 73 83 88
Volume: 127
Track 12:
Channels: 15
Notes: c4 d4 e4 f4 g4 a4 h4 c5 d5 e5
Programs: Choir
Velocity: 57 77
Volume: 127
Track 13:
Channels: 16
Notes: e4 g4 a4 h4 c5 d5 e5 f5 g5
Programs: Clarinet
Velocity: 63
Volume: 127